# 人为控制：每个人只存一条数据（姓名不能重复）
person_list = {
    '张三':  {'手机号': '13355556666', '联系地址': '也门', '电子邮箱': '123@qq.com'},
    '李四' : {'手机号': '13355556666', '联系地址': '也门', '电子邮箱': '123@qq.com'},
    '王五':  {'手机号': '13355557777', '联系地址': '也门', '电子邮箱': '123@qq.com'}
}

print('=' * 20)
print('欢迎使用通讯录')
print('1.添加新的联系人')
print('2.查看所有的联系人')
print('3.删除联系人')
print('4.修改联系人的信息')
print('5.查找联系人')
print('6.退出')
print('=' * 20)

while True:
    num = input('请选择一个功能：')
    if num == '1':
        # 用户输入姓名、手机号、电子邮箱、联系地址
        name = input('请输入联系人的姓名：')  # 必填
        phone = input('请输入联系人的手机号：')  # 必填
        email = input('请输入联系人的电子邮箱：')
        address = input('请输入联系人的联系地址：')
        # 判断数据
        if name.strip() == '':
            print('请输入正确的联系人姓名')
        elif phone.strip() == '':
            print('请输入正确的联系人手机号')
        elif name in person_list.keys():  # 输入的名字是已存在的key
            print(f'{name}已存在')
        else:
            # '王五':  {'手机号': '13355557777', '联系地址': '也门', '电子邮箱': '123@qq.com'}
            person_list.update(
                {name: {'手机号': phone, '联系地址': address, '电子邮箱': email}})
            print('添加成功')
    elif num == '2':
        # person_list(字典)遍历打印
        for name, info in person_list.items():  # name是名字，info是3个信息的字典
            print('-' * 20)
            print(f'姓名：{name}')
            for key, value in info.items():  # key就是字段、value是值
                print(f'{key}：{value}')
            print('-' * 20)
    elif num == '3':
        name = input('请输入要删除的联系人姓名：')  # 张三/XXX
        if name in person_list.keys():
            # 字典根据key删除键值对，只能删存在的key，不存在的会报错
            person_list.pop(name)
            print(f'删除{name}成功')
        else:
            print(f'{name}不存在')
    elif num == '4':
        name = input('请输入要修改的联系人姓名：')  # 张三/XXX
        if name in person_list.keys():
            # 根据姓名回显信息
            info = person_list[name]  # 这是3个信息的字典
            for key, value in info.items():  # key就是字段、value是值
                print(f'{key}：{value}')
            # 接收用户输入的新数据
            print('-' * 20)
            phone = input('请输入联系人新的手机号：')  # 必填
            email = input('请输入联系人新的电子邮箱：')
            address = input('请输入联系人新的联系地址：')
            print('-' * 20)
            if phone.strip() == '':
                print('请输入正确的联系人手机号')
            else:
                person_list.update(
                    {name: {'手机号': phone, '联系地址': address, '电子邮箱': email}})
                # info.update({'手机号': phone, '联系地址': address, '电子邮箱': email})
                print(f'修改{name}信息成功')
        else:
            print(f'{name}不存在')
    elif num == '5':
        name = input('请输入要查找的联系人姓名：')  # 张三/XXX
        if name in person_list.keys():
            print('-' * 20)
            print(f'姓名：{name}')
            info = person_list[name]  # 字典根据key取值，值是3个信息的字典
            for key, value in info.items():  # key就是字段、value是值
                print(f'{key}：{value}')
            print('-' * 20)
        else:
            print(f'{name}不存在')
    elif num == '6':
        print('退出')
        break  # 停止死循环